home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 125 / Computer Shopper CD-ROM Issue 125 (1998-07)(Dennis Publishing).iso / Business / Dazzler / DAZZLER.Z / CDragDropResponse.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-26  |  4.0 KB  |  168 lines

  1. import java.awt.Point;
  2. import java.awt.Rectangle;
  3. import java.io.DataInputStream;
  4.  
  5. public class CDragDropResponse extends CDisplayResponse {
  6.    static final short DRAG_FREELY = 0;
  7.    static final short DRAG_ALONG_PATH = 1;
  8.    static final short DRAG_WITHIN_RECTANGLE = 2;
  9.    protected short m_cType = 0;
  10.    protected String m_strObject = "";
  11.    protected CPolyline m_Polyline = new CPolyline();
  12.    protected CVarOrValue m_Base = new CVarOrValue();
  13.    protected CVarOrValue m_End = new CVarOrValue();
  14.    protected CVarOrValue m_ValidFrom = new CVarOrValue();
  15.    protected CVarOrValue m_ValidTo = new CVarOrValue();
  16.    protected Point m_ptCurrentPos = new Point(0, 0);
  17.    private int m_nOnLine = -1;
  18.  
  19.    boolean LoadFromFile(DataInputStream var1) {
  20.       this.m_cType = FileLoad.ReadCPlusByte(var1);
  21.       FileLoad.ReadCPlusInt(var1);
  22.       this.m_strObject = FileLoad.ReadCString(var1);
  23.       this.m_Base.LoadFromFile(var1);
  24.       this.m_End.LoadFromFile(var1);
  25.       this.m_ValidFrom.LoadFromFile(var1);
  26.       this.m_ValidTo.LoadFromFile(var1);
  27.       this.m_Polyline.LoadFromFile(var1);
  28.       return super.LoadFromFile(var1);
  29.    }
  30.  
  31.    public CDragDropResponse() {
  32.       super(50);
  33.    }
  34.  
  35.    String GetDragObjectName() {
  36.       return this.m_strObject;
  37.    }
  38.  
  39.    Point GetPtWithinRect(Point var1, CRect var2) {
  40.       Point var3 = new Point(var1.x, var1.y);
  41.       CRect var4 = new CRect();
  42.       if (this.m_cType == 0) {
  43.          var4.reshape(Globals.thePresView.GetClientRect());
  44.       } else {
  45.          var4.reshape(super.m_rcActual.GetRect());
  46.       }
  47.  
  48.       if (!((Rectangle)var4).isEmpty()) {
  49.          if (var1.x < var4.x) {
  50.             var3.x = var4.x;
  51.          }
  52.  
  53.          if (var1.y < var4.y) {
  54.             var3.y = var4.y;
  55.          }
  56.  
  57.          if (var1.x + var2.width > var4.getRight()) {
  58.             var3.x = var4.getRight() - var2.width;
  59.          }
  60.  
  61.          if (var1.y + var2.height > var4.getBottom()) {
  62.             var3.y = var4.getBottom() - var2.height;
  63.          }
  64.       }
  65.  
  66.       return var3;
  67.    }
  68.  
  69.    CResponseReturn DoResponse(int var1) {
  70.       return super.DoResponse(var1);
  71.    }
  72.  
  73.    CVarOrValue GetEnd() {
  74.       return this.m_End;
  75.    }
  76.  
  77.    boolean OnMouseClick(int var1, int var2, Point var3, int var4, CRect var5) {
  78.       boolean var6 = false;
  79.       if (var1 == 2023) {
  80.          if (this.m_cType == 0) {
  81.             CDragDropResponse var7 = null;
  82.             if (Globals.thePresView.m_pCapturedObject != null) {
  83.                var7 = (CDragDropResponse)Globals.thePresView.m_pCapturedObject.GetSetByIconObject();
  84.             }
  85.  
  86.             if (var7 != null && var7.GetDragObjectName().equals(this.m_strObject) && ((CDisplayResponse)this).HitTest(var3)) {
  87.                var6 = true;
  88.             }
  89.          } else if (this.m_cType == 1 && Globals.thePresView.m_pCapturedObject != null && this.m_Base.GetValue() != this.m_End.GetValue() && Globals.thePresView.m_pCapturedObject.m_pIconObject.GetText().equals(Utils.InsertVariablesInString(this.m_strObject))) {
  90.             long var17 = 0L;
  91.             long var9 = 0L;
  92.             long var11 = 0L;
  93.             long var13 = 0L;
  94.             Object var15 = null;
  95.             if (this.m_nOnLine >= 0 && this.m_nOnLine < this.m_Polyline.npoints) {
  96.                var17 = (long)this.m_Polyline.GetLength(this.m_nOnLine + 1);
  97.                Point var16 = new Point(this.m_Polyline.xpoints[this.m_nOnLine], this.m_Polyline.ypoints[this.m_nOnLine]);
  98.                var17 += (long)Utils.GetDistance(var16, this.m_ptCurrentPos);
  99.             }
  100.  
  101.             if ((var13 = (long)this.m_Polyline.GetLength()) != 0L) {
  102.                var9 = var17 * 100L / var13;
  103.             }
  104.  
  105.             var11 = (long)this.m_Base.GetValue() + (long)(this.m_End.GetValue() - this.m_Base.GetValue()) * var9 / 100L;
  106.             CVariable var21;
  107.             if ((var21 = Utils.SearchAllVariables(CVariableTable.strDefVariables[23])) != null) {
  108.                var21.SetValue((double)var11);
  109.             }
  110.  
  111.             if (this.m_ValidFrom.GetValue() != 0 || this.m_ValidTo.GetValue() != 0) {
  112.                var6 = true;
  113.             }
  114.          }
  115.       }
  116.  
  117.       return var6;
  118.    }
  119.  
  120.    CVarOrValue GetBase() {
  121.       return this.m_Base;
  122.    }
  123.  
  124.    boolean SetResponse() {
  125.       if (Globals.thePresView.IsRunning() && this.m_strObject.length() > 0) {
  126.          String var1 = Utils.InsertVariablesInString(this.m_strObject);
  127.          CDrawObj var2 = Globals.thePresView.FindDrawObject(var1);
  128.          if (var2 != null) {
  129.             var2.SetMoveable(this);
  130.          }
  131.  
  132.          if (this.m_cType == 1 && this.m_Polyline.npoints > 1) {
  133.             this.m_nOnLine = -1;
  134.          }
  135.       }
  136.  
  137.       return true;
  138.    }
  139.  
  140.    boolean HitTestCheck(Point var1) {
  141.       boolean var2 = true;
  142.       if (this.m_cType == 1 && this.m_Polyline.GetSize() > 2) {
  143.          var2 = this.m_Polyline.inside(var1.x, var1.y);
  144.       }
  145.  
  146.       return var2;
  147.    }
  148.  
  149.    CPolyline GetActualPolyline() {
  150.       return this.m_Polyline;
  151.    }
  152.  
  153.    Point GetNearestPtOnPath(Point var1, CRect var2) {
  154.       Point var3 = new Point(var1.x, var1.y);
  155.       if (this.m_cType == 1) {
  156.          CPathData var4 = this.m_Polyline.GetNearestPtOnPath(var1, var2, this.m_nOnLine);
  157.          var3 = var4.ptNew;
  158.          this.m_nOnLine = var4.nCurrentPt;
  159.       }
  160.  
  161.       return var3;
  162.    }
  163.  
  164.    short GetDragType() {
  165.       return this.m_cType;
  166.    }
  167. }
  168.